﻿using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Xml;
using System.IO;


namespace Titler.ControlModels
{

    class FPControlModel : INotifyPropertyChanged
    {

        public event PropertyChangedEventHandler PropertyChanged;

        #region Hydraulic Line Control Fields
        private string _hLCount1;
        private string _hLCount2;
        private string _hLCount3;
        private string _hlSize1;
        private string _hlSize2;
        private string _hlSize3;
        private string _hlThickness1;
        private string _hlThickness2;
        private string _hlThickness3;
        private string _hlMaterial1;
        private string _hlMaterial2;
        private string _hlMaterial3; 
        #endregion

        #region TEC Line Control Fields
        private string _tecCount;
        private string _tecSize;
        private string _tecThickness;
        private string _tecArmor;
        private string _tecCondMaterial;
        private string _tecInsulMaterial;
        private string _tecFillMaterial; 
        #endregion

        #region FP Control Fields
        private string _fpencapsLength;
        private string _fpencapsWidth;
        private string _fPEncapsMaterial;
        private string _fpWorkingFluid;
        private string _fpReelMaterial;
        private string _fpReelMaxOD;
        private string _fpReelWidth;
        private string _fpReelShaftOD;
        private string _fpOtherOptions; 
        #endregion

        #region Hydraulic Line Control
        public string HLCount1
        {
            get { return _hLCount1; }
            set
            {
                if (value != null && value != _hLCount1)
                {
                    _hLCount1 = value;
                    RaisePropertyChanged("HLCount1", value);
                }
            }
        }

        public string HLCount2
        {
            get { return _hLCount2; }
            set
            {
                if (value != null && value != _hLCount2)
                {
                    _hLCount2 = value;
                    RaisePropertyChanged("HLCount2", value);
                }
            }
        }

        public string HLCount3
        {
            get { return _hLCount3; }
            set
            {
                if (value != null && value != _hLCount3)
                {
                    _hLCount3 = value;
                    RaisePropertyChanged("HLCount3", value);
                }
            }
        }

        public string HLSize1
        {
            get { return _hlSize1; }
            set
            {
                if (value != null && value != _hlSize1)
                {
                    _hlSize1 = value;
                    RaisePropertyChanged("HLSize1", value);
                }
            }
        }

        public string HLSize2
        {
            get { return _hlSize2; }
            set
            {
                if (value != null && value != _hlSize2)
                {
                    _hlSize2 = value;
                    RaisePropertyChanged("HLSize2", value);
                }
            }
        }

        public string HLSize3
        {
            get { return _hlSize3; }
            set
            {
                if (value != null && value != _hlSize3)
                {
                    _hlSize3 = value;
                    RaisePropertyChanged("HLSize3", value);
                }
            }
        }

        public string HLThickness1
        {
            get { return _hlThickness1; }
            set
            {
                if (value != null && value != _hlThickness1)
                {
                    _hlThickness1 = value;
                    RaisePropertyChanged("HLThickness1", value);
                }
            }
        }

        public string HLThickness2
        {
            get { return _hlThickness2; }
            set
            {
                if (value != null && value != _hlThickness2)
                {
                    _hlThickness2 = value;
                    RaisePropertyChanged("HLThickness2", value);
                }
            }
        }

        public string HLThickness3
        {
            get { return _hlThickness3; }
            set
            {
                if (value != null && value != _hlThickness3)
                {
                    _hlThickness3 = value;
                    RaisePropertyChanged("HLThickness3", value);
                }
            }
        }

        public string HLMaterial1
        {
            get { return _hlMaterial1; }
            set
            {
                if (value != null && value != _hlMaterial1)
                {
                    _hlMaterial1 = value;
                    RaisePropertyChanged("HLMaterial1", value);
                }
            }
        }

        public string HLMaterial2
        {
            get { return _hlMaterial2; }
            set
            {
                if (value != null && value != _hlMaterial2)
                {
                    _hlMaterial2 = value;
                    RaisePropertyChanged("HLMaterial2", value);
                }
            }
        }

        public string HLMaterial3
        {
            get { return _hlMaterial3; }
            set
            {
                if (value != null && value != _hlMaterial3)
                {
                    _hlMaterial3 = value;
                    RaisePropertyChanged("HLMaterial3", value);
                }
            }
        } 
        #endregion

        #region TEC Line Control
        public string TECCount
        {
            get { return _tecCount; }
            set
            {
                if (value != null && value != _tecCount)
                {
                    _tecCount = value;
                    RaisePropertyChanged("TECCount", value);
                }
            }
        }

        public string TECSize
        {
            get { return _tecSize; }
            set
            {
                if (value != null && value != _tecSize)
                {
                    _tecSize = value;
                    RaisePropertyChanged("TECSize", value);
                }
            }
        }

        public string TECThickness
        {
            get { return _tecThickness; }
            set
            {
                if (value != null && value != _tecThickness)
                {
                    _tecThickness = value;
                    RaisePropertyChanged("TECThickness", value);
                }
            }
        }

        public string TECArmor
        {
            get { return _tecArmor; }
            set
            {
                if (value != null && value != _tecArmor)
                {
                    _tecArmor = value;
                    RaisePropertyChanged("TECArmor", value);
                }
            }
        }

        public string TECCondMaterial
        {
            get { return _tecCondMaterial; }
            set
            {
                if (value != null && value != _tecCondMaterial)
                {
                    _tecCondMaterial = value;
                    RaisePropertyChanged("TECCondMaterial", value);
                }
            }
        }

        public string TECInsulMaterial
        {
            get { return _tecInsulMaterial; }
            set
            {
                if (value != null && value != _tecInsulMaterial)
                {
                    _tecInsulMaterial = value;
                    RaisePropertyChanged("TECInsulMaterial", value);
                }
            }
        }

        public string TECFillMaterial
        {
            get { return _tecFillMaterial; }
            set
            {
                if (value != null && value != _tecFillMaterial)
                {
                    _tecFillMaterial = value;
                    RaisePropertyChanged("TECFillMaterial", value);
                }
            }
        }
        #endregion

        #region FP Control
        public string FPEncapsLength
        {
            get { return _fpencapsLength; }
            set
            {
                if (value != null && value != _fpencapsLength)
                {
                    _fpencapsLength = value;
                    RaisePropertyChanged("FPEncapsLength", value);
                }
            }
        }

        public string FPEncapsWidth
        {
            get { return _fpencapsWidth; }
            set
            {
                if (value != null && value != _fpencapsWidth)
                {
                    _fpencapsWidth = value;
                    RaisePropertyChanged("FPEncapsWidth", value);
                }
            }
        }

        public string FPEncapsMaterial
        {
            get { return _fPEncapsMaterial; }
            set
            {
                if (value != null && value != _fPEncapsMaterial)
                {
                    _fPEncapsMaterial = value;
                    RaisePropertyChanged("FPEncapsMaterial", value);
                }
            }
        }

        public string FPWorkingFluid
        {
            get { return _fpWorkingFluid; }
            set
            {
                if (value != null && value != _fpWorkingFluid)
                {
                    _fpWorkingFluid = value;
                    RaisePropertyChanged("FPWorkingFluid", value);
                }
            }
        }

        public string FPReelMaterial
        {
            get { return _fpReelMaterial; }
            set
            {
                if (value != null && value != _fpReelMaterial)
                {
                    _fpReelMaterial = value;
                    RaisePropertyChanged("FPReelMaterial", value);
                }
            }
        }

        public string FPReelMaxOD
        {
            get { return _fpReelMaxOD; }
            set
            {
                if (value != null && value != _fpReelMaxOD)
                {
                    _fpReelMaxOD = value;
                    RaisePropertyChanged("FPReelMaxOD", value);
                }
            }
        }

        public string FPReelWidth
        {
            get { return _fpReelWidth; }
            set
            {
                if (value != null && value != _fpReelWidth)
                {
                    _fpReelWidth = value;
                    RaisePropertyChanged("FPReelWidth", value);
                }
            }
        }

        public string FPReelShaftOD
        {
            get { return _fpReelShaftOD; }
            set
            {
                if (value != null && value != _fpReelShaftOD)
                {
                    _fpReelShaftOD = value;
                    RaisePropertyChanged("FPReelShaftOD", value);
                }
            }
        }

        public string FPOtherOptions
        {
            get { return _fpOtherOptions; }
            set
            {
                if (value != null && value != _fpOtherOptions)
                {
                    _fpOtherOptions = value;
                    RaisePropertyChanged("FPOtherOptions", value);
                }
            }
        }
        #endregion

        /// <summary>
        /// Raise Property Changed Event
        /// </summary>
        /// <param name="propName"></param>
        /// <param name="propValue"></param>
        public void RaisePropertyChanged(string propName, string propValue)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(propName));
        }
        
    }
}
